package com.toe.forum.webapi.mapper;

import com.toe.pojo.dto.forum.EnshrineArticleUpdateDTO;
import com.toe.pojo.entity.forum.UserEnshrineArticle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.toe.pojo.vo.forum.EnshrineArticleVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
 * <p>
 * 用户收藏文章表 Mapper 接口
 * </p>
 *
 * @author 陶涛
 * @since 2022-07-19
 */
@Repository
public interface UserEnshrineArticleMapper extends BaseMapper<UserEnshrineArticle> {
    /**
     * 利用mybatis-plus添加文章分类
     * @param forumCategory
     * int insert(ForumCategory forumCategory);
     * @return
     */

    /***
     * 根据 ID 删除
     * @param id 主键ID
     *  int deleteById(Serializable id);
     * */

    /**
     * 删除指定的收藏记录
     * @param userId
     * @param articleId
     */
    void delete(@Param("userId") long userId,@Param("articleId") long articleId);

    /**
     * 修改映射表(基本用户到)
     * @param enshrineArticleUpdateDTO
     */
    void updateUserEnshrineArticle(@Param("enshrineArticleUpdateDTO") EnshrineArticleUpdateDTO enshrineArticleUpdateDTO);

    /**
     * 查询所有的收藏记录
     * @return
     */
    List<EnshrineArticleVO> selectAllEnshrine();

    /**
     * 查询某篇文章的全部收藏记录
     * @param articleId
     * @return
     */
    List<EnshrineArticleVO> selectAllEnshrineByArticleId(long articleId);

    /**
     * 查询指定的收藏记录
     * @param userId
     * @param articleId
     * @return
     */
    EnshrineArticleVO selectEnshrine(@Param("userId") long userId,@Param("articleId") long articleId);

    void deleteByArticleId(long articleId);
}
